Virtual machine (VM) networks formed by host computers connected over the Internet protocol suite known as “Transmission Control Protocol/Internet Protocol” (TCP/IP) can be used to implement software defined data centers (SDDCs). Typically, VMs running on a host computer in a SDDC share common resources (e.g., memory, CPUs, or pNIC bandwidth) by treating the resources of the host computer as a resource pool and allocating resources from the resource pool to individual VMs as needed based on demand. For example, several VMs running on a host computer will each be allocated a portion of the processing power from a resource pool based on the demand for each VM. While allocating shared resources to VMs based on demand is often simply a matter of comparing resource usage queues (e.g., comparing the queue of instructions to be performed by a CPU for each VM), bandwidth usage is not so easily determined because of the lack of an observable queue or another easily apparent indicator of demand. The lack of a queue or indicator is due, in part, to the fact that the TCP/IP protocol is configured to quickly adapt bandwidth usage to the amount of bandwidth available. Thus, because of the lack of a queue or indicator, a VM will typically remain under-provisioned even after demand is determined and, therefore, bandwidth demand is typically not accurately determined.